﻿using System;
using System.Collections.Generic;
using System.Text;

namespace IBSInterface
{
    public interface IBusJourney
    {
        ///// <summary>
        ///// 获得 指定线路 当前在用时刻表的总班次数
        ///// </summary>
        ///// <param name="lineId">线路ID</param>
        ///// <param name="date">指定日期,用于判别时刻表类型</param>
        ///// <returns>总班次数</returns>
        //int GetBusJourney(int lineId, DateTime date);

        /// <summary>
        /// 获得 指定线路 当前在用时刻表的总班次数
        /// </summary>
        /// <param name="lineId">线路ID</param>
        /// <param name="beginDate">指定开始日期,用于判别时刻表类型</param>
        /// <param name="endDate">指定截止日期,用于判别时刻表类型</param>
        /// <returns>总班次数</returns>
        int GetBusJourney(int lineId, DateTime beginDate,DateTime endDate);

        /// <summary>
        /// 获得 指定线路 当前在用时刻表的总班次数
        /// </summary>
        /// <param name="lineIds">多条线路ID</param>
        /// <param name="beginDate">指定开始日期,用于判别时刻表类型</param>
        /// <param name="endDate">指定截止日期,用于判别时刻表类型</param>
        /// <returns>总班次数</returns>
        int GetBusJourney(IList<int> lineIds, DateTime beginDate, DateTime endDate);

        ///// <summary>
        ///// 获得 指定线路 当前在用时刻表 指定时间段内的班次数
        ///// </summary>
        ///// <param name="lineId">线路ID</param>
        ///// <param name="date">指定日期,用于判别时刻表类型</param>
        ///// <param name="begin">时间段 开始时刻</param>
        ///// <param name="end">时间段 结束时刻</param>
        ///// <returns>时间段内班次数</returns>
        //int GetBusJourney(int lineId,DateTime date, DateTime begin, DateTime end);

        ///// <summary>
        ///// 获取指定线路 在某一时间段内的班次数
        ///// </summary>
        ///// <param name="lineIds">多条线路ID</param>
        ///// <param name="date">指定日期,用于判别时刻表类型</param>
        ///// <param name="beginTimeZone">时间段 开始时刻</param>
        ///// <param name="endTimeZone">时间段 结束时刻</param>
        ///// <returns>时间段内班次数</returns>
        //int GetBusJourney(IList<int> lineIds,DateTime date, DateTime beginTimeZone, DateTime endTimeZone);

        /// <summary>
        /// 获取指定线路 在某一时间段内的班次数
        /// </summary>
        /// <param name="lineId">线路ID</param>
        /// <param name="beginDate">指定开始日期,用于判别时刻表类型</param>
        /// <param name="endDate">指定截止日期,用于判别时刻表类型</param>
        /// <param name="beginTimeZone">时间段 开始时刻</param>
        /// <param name="endTimeZone">时间段 结束时刻</param>
        /// <returns>时间段内班次数</returns>
        int GetBusJourney(int lineId, DateTime beginDate, DateTime endDate, DateTime beginTimeZone, DateTime endTimeZone);

        /// <summary>
        /// 获取指定线路 在某一时间段内的班次数
        /// </summary>
        /// <param name="lineIds">多条线路ID</param>
        /// <param name="beginDate">指定开始日期,用于判别时刻表类型</param>
        /// <param name="endDate">指定截止日期,用于判别时刻表类型</param>
        /// <param name="beginTimeZone">时间段 开始时刻</param>
        /// <param name="endTimeZone">时间段 结束时刻</param>
        /// <returns>时间段内班次数</returns>
        int GetBusJourney(IList<int> lineIds, DateTime beginDate, DateTime endDate, DateTime beginTimeZone, DateTime endTimeZone);
    }
}
